In many computing systems, low-level instruction code, or firmware, is used to configure hardware components in preparation for booting an operating system. For example, and without limitation, some computing systems utilize firmware that is compliant with a specification released by the Unified EFI (“UEFI”) Forum (the “UEFI Specification”). Such a firmware might be referred to herein as a UEFI Specification-compliant firmware, a UEFI-compliant firmware, or a UEFI firmware. Other types of firmware implementations perform similar functions.
UEFI firmware is executed as a single thread. As a result, the network stack provided by UEFI firmware must read network packets utilizing polling. Processing all of the network packets obtained during each polling operation can, however, take a long time. This approach works reasonably well when a computing system implementing such a firmware acts as a network client. If such a computing system acts as a network server, however, the polling mechanism described above can result in the computing device taking an extended amount of time to accept network connections. This can result in network clients timing-out. As a result, network performance and other types of computing tasks that are dependent upon network performance can be negatively impacted.
It is with respect to these and other considerations that the disclosure made herein is presented.